// 模板1:找右边区间的点1
int bsearch_1(int l, int r)
{
  while (l < r)
  {
    int mid = l + r >> 1;
    if (check(mid))
      r = mid;
    else
      l = mid + 1;
  }

  return l;
}

// 模板2：找左边区间的点2
// 为了防止死循环。计算mid时需要加1
int bsearch_2(int l, int r)
{
  while (l < r)
  {
    int mid = l + r + 1 >> 1;
    if (check(mid))
      l = mid;
    else
      r = mid - 1;
  }
  return l;
}
